1. Field of the Invention
The present invention generally relates to passing data input, with respect to one of two or more differently-domained, non-interfaced, application programs in a common framework, between applications within the framework.
2. Description of the Related Art
In computing, a framework is a defined support structure in which another software project can be organized and/or developed. In computer programming, an application framework is a term usually used to refer to a set of libraries or classes that are used to implement the standard structure of an application for a specific operating system.
When separate pieces of software desire to interact with one another, an interface is generally necessary to be provided. The interface may have many different characteristics including tightness of coupling, language independence and a communication mechanism. Relatively tightly coupled interfaces require a change whenever a change is made to one of the pieces of software. Typically the same language needs to be used for the interface as the language used for the pieces of application software. The communication mechanism relates to the ability of an interface to allow pieces of software to call one another in the same memory space or communication network.
As opposed to earlier types of client-server computing wherein each application had its own client program which served as its user interface and had to be separately installed on each user's computer, many applications today are accessed through the World Wide Web or similar web, so called “web applications” or “webapps.” A webapp is an application that's accessed with a web browser over a network such as the Internet or an intranet. Webapps are popular due to the ubiquity of the browser as a client, sometimes called a thin client, and the ability to update and maintain webapps without distributing and installing software on may client computers. Webapps dynamically generate a series of web pages in a standard format such as HTML/XHTML, supported by common browsers where the browser acts as the universal client. Client-side scripting in a standard language such as JavaScript is commonly included to add dynamic elements to the user interface.
The World Wide Web comprises a system of internet servers that support documents in HyperText markup Language (“HTML”) which support links to other documents. Access to sites on the World Wide Web (the “web”) is by means of a Uniform Resource Locator (URL), a string of characters conforming to a standardized format which refers to a resource by its location on the internet. Attached to the URL may be a query string, specifying data to be passed to a Web Server program (for example, a Common Gateway Interface (“CGI”) program, ASP, ASPX, php, etc.), comprising a standard protocol for interfacing external application software with a web server (allowing the server to pass requests from a client web browser to the external application). The URL includes a domain name which consist of memorable words that through lookup in the global Domain Name System is converted to the numeric IP addresses (the unique number used to identify a particular network device, router, computer, printer etc., that is, its address in the network) that allow for communication with a particular address. The Domain Name by convention consist of two or more parts separated by dots with the rightmost label conveying the top-level domain (for example, “ti.thom.org” has the top-level domain “org”) and each left portion separated by dots specifies a subdomain of the parent domain, the first most left being referred to as the second-level domain name, the next most left, the third-level domain etc. A domain name that has one or more associated IP addresses is called a hostname (e.g., “ti.thom.org” and “thom.org” domains are both hostnames).
Information may be displayed at the client side in a number of HTML frames, which may be independent windows or subwindows, allowing certain information to be visible while other views are scrolled or replaced (e.g., in the same window, one frame might include a navigation window, one a static banner, and one a scrollable document). Inline HTML frames such as frames within text are referred to as Iframes.
Access to materials on the World Wide Web may be improved by interface of a proxy server between the client and web server, allowing access to a resource either by connecting to a specified server or servicing the resource directly from its cache. Reverse proxy servers, that is proxy servers installed in the neighborhood of one or more webservers, may also be used to improve speed of access of materials on the web by caching static content like pictures and other static graphical content, in aiding in load distribution to several webservers and performing Secure Sockets Layer (SSL) encryption in a more accelerated manner than the webserver could do itself. The proxy server may also perform webapp processing making the client in the client-server architecture network a so-called thin client in depending primarily on the proxy server for processing activities (as opposed to a thick client were the client does as much processing as possible and passes only data required for communications and archival storage to the server).
Many obstacles exist in trying to transfer data processable in more than one World Wide Web-based application in a framework when an appropriate interface between the applications has not been designed. For example, in Java context passing may be implemented by adding an argument to each method so that a value (i.e., context) is passed down the call stack to methods that require it. However, inter-communication between framework applications in a web-based system by means of JavaScript function calls would only be permitted if the framework and incorporated application programs were in the same domain. If both were in the same domain, that is having a single IP address, during navigation of the web, problems such as the overwriting of each other's cookies, and the limitation of the number of cookies per domain could arise.
There is a need for independent webapps within a defined framework to pass information between each other without the need for the writing of complex interfaces.